package tcp;

/*
 * Classe que representa o servidor de arquivos 
 */

import java.io.*;
import java.net.*;

public class ServidorTCP {

    public static final String ServerIP = "127.0.0.1";
    static int PORTA = 5001;
    static String caminho = System.getProperty("user.dir") + "\\src\\files";

    public static void main(String args[]) throws Exception {
        Datagrama msgCliente; //nome do arquivo
        System.out.println("Servidor TCP executando:");
        ServerSocket socketServidor = new ServerSocket(PORTA);
        while (true) {
            Socket socketConexao = socketServidor.accept();

            BufferedReader entradaUsuario = new BufferedReader(new InputStreamReader(socketConexao.getInputStream()));
            DataOutputStream saidaCLiente = new DataOutputStream(socketConexao.getOutputStream());
            char buf[] = new char[1025];
            String entrada = entradaUsuario.readLine();
            System.out.println(entrada);
            
            File arquivo = new File(caminho + "\\" + entrada);
            if (arquivo.isFile()) {
                InputStream input = new FileInputStream(arquivo);
                byte vet[] = new byte[1025];
                input.read(vet);
                Datagrama arquivoSaida = new Datagrama((byte)0, vet);
                
                //envia para o cliente
                saidaCLiente.write(arquivoSaida.getPacote());
                System.out.println("Arquivo enviado");
                
                
            } else {
                //envia mensagem de erro
                String resposta = "File Not Found\n";
                
                saidaCLiente.write(new Datagrama((byte)1,resposta.getBytes()).getPacote());
            }
        }
    }
}
